package com.gs.business.comadi.uscite;

import java.util.HashMap;

import com.gs.business.cache.CacheUscite;
import com.gs.domain.SingleSpesa;
import com.gs.domain.wrapper.WrapSingleSpesa;
import comi.gsi.command.ICommand;
import comi.gsi.command.javabeancommand.AbstractCommandForJavaBean;
import comi.gsi.command.javabeancommand.AbstractOggettoEntita;

public class CommandDeleteSpesa extends AbstractCommandForJavaBean implements ICommand {

	public CommandDeleteSpesa(final SingleSpesa entita) {
		final CacheUscite cache = CacheUscite.getSingleton();
		mappaCache = (HashMap<String, AbstractOggettoEntita>) cache.getCache();
		wrap = new WrapSingleSpesa();
		this.entita = entita;
	}

	@Override
	public boolean execute() {
		if (entita instanceof SingleSpesa) {
			if (wrap.delete(Integer.parseInt(entita.getIdEntita()))) {
				mappaCache.remove(entita.getIdEntita());
				return true;
			}
		}
		return false;
	}

	@Override
	public boolean unExecute() {
		if (entita instanceof SingleSpesa) {
			if (wrap.insert(entita)) {
				mappaCache.put(entita.getIdEntita(), entita);
				return true;
			}
		}
		return false;
	}

	@Override
	public String toString() {
		return "Eliminata Spesa " + ((SingleSpesa) entita).getNomeEntita();
	}

	@Override
	public void scriviLogExecute(final boolean isComandoEseguito) {
		if (isComandoEseguito) {
			// Alert.operazioniSegnalazioneInfo("Cancellata correttamente spesa "
			// + entita.getnome());
		}

	}

	@Override
	public void scriviLogUnExecute(final boolean isComandoEseguito) {
		if (isComandoEseguito) {
			// Alert.operazioniSegnalazioneInfo("Ripristinata spesa " +
			// entita.getnome() + " precedentemente cancellata");
		}
	}

}
